unit UPesquisaCheque;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UFormPesquisa, DB, DBTables, StdCtrls, Grids, DBGrids, Buttons,
  ExtCtrls, Mask, ToolEdit, DBCtrls, CurrEdit;

type
  TFPesquisaCheque = class(TFormPesquisa)
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    dblOrigem: TDBLookupComboBox;
    Label10: TLabel;
    Label13: TLabel;
    dblPortador: TDBLookupComboBox;
    Label14: TLabel;
    dblSituacao: TDBLookupComboBox;
    Label16: TLabel;
    dblPagto: TDBLookupComboBox;
    edBanco: TEdit;
    edAgencia: TEdit;
    edNumeroCheque: TEdit;
    Label5: TLabel;
    edCodOrigem: TEdit;
    Label7: TLabel;
    edCodPagto: TEdit;
    QPesquisaCH_CODIGO: TIntegerField;
    QPesquisaCH_DTLANCTO: TDateTimeField;
    QPesquisaCH_BANCO: TStringField;
    QPesquisaCH_AGENCIA: TStringField;
    QPesquisaCH_CHEQUE: TStringField;
    QPesquisaCH_VALOR: TFloatField;
    QPesquisaCH_VENCTO: TDateTimeField;
    QPesquisaCH_ORIGEM: TStringField;
    QPesquisaCH_COD_ORIGEM: TIntegerField;
    QPesquisaCH_PORTADOR: TIntegerField;
    QPesquisaPORT_DESCRICAO: TStringField;
    QPesquisaSIT_DESCRICAO: TStringField;
    QPesquisaCH_PAGTO: TStringField;
    QPesquisaCH_COD_PAGTO: TIntegerField;
    dspagto: TDataSource;
    dsPortador: TDataSource;
    dsOrigem: TDataSource;
    DsChequeSituacao: TDataSource;
    Label1: TLabel;
    edEmitente: TEdit;
    edValor: TRxCalcEdit;
    Label2: TLabel;
    procedure BtnConsultarClick(Sender: TObject);
    procedure BtnSelecionarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FPesquisaCheque: TFPesquisaCheque;

implementation

uses UCadastroCheque, UDmFinanceiro;

{$R *.dfm}

procedure TFPesquisaCheque.BtnConsultarClick(Sender: TObject);
const
  ctPesquisa =
    'SELECT'#10+
    '  CHEQUE.CH_CODIGO,'#10+
    '  CHEQUE.CH_DTLANCTO,'#10+
    '  CHEQUE.CH_BANCO,'#10+
    '  CHEQUE.CH_AGENCIA,'#10+
    '  CHEQUE.CH_CHEQUE,'#10+
    '  CHEQUE.CH_VALOR,'#10+
    '  CHEQUE.CH_VENCTO,'#10+
    '  CHEQUE.CH_ORIGEM,'#10+
    '  CHEQUE.CH_COD_ORIGEM,'#10+
    '  CHEQUE.CH_DTMOVTO,'#10+
    '  CHEQUE.CH_PORTADOR,'#10+
    '  PORTADOR.PORT_DESCRICAO,'#10+
    '  CHEQUE_SITUACAO.SIT_DESCRICAO,'#10+
    '  CHEQUE.CH_PAGTO,'#10+
    '  CHEQUE.CH_COD_PAGTO'#10+
    'FROM'#10+
    '  CHEQUE'#10+
    '  INNER JOIN PORTADOR ON (CHEQUE.CH_PORTADOR = PORTADOR.PORT_CODIGO)'#10+
    '  INNER JOIN CHEQUE_SITUACAO ON (CHEQUE.CH_SITUACAO = CHEQUE_SITUACAO.SIT_CODIGO)'#10+
    'WHERE (CH_CODIGO IS NOT NULL) %s';
var
  Filtro : String;
begin

  Filtro := '';

  if edEmitente.Text <> '' then
    filtro := Filtro + 'AND (CH_EMITENTE STARTING '''+ edEmitente.Text +''')';

  if edValor.Value > 0 then
    filtro := Filtro + 'AND (CH_VALOR = '+ StringReplace(FormatFloat('0.00',edValor.Value),',','.',[]) +')';

  if edBanco.Text <> '' then
    filtro := Filtro + 'AND (CH_BANCO = '+ edBanco.Text +')';

  if edAgencia.Text <> '' then
    filtro := Filtro + 'AND (CH_AGENCIA = '+ edAgencia.Text +')';

  if edNumeroCheque.Text <> '' then
    filtro := Filtro + 'AND (CH_CHEQUE = '+ edNumeroCheque.Text +')';

  if dblOrigem.KeyValue <> null then
    filtro := filtro + 'AND (CH_ORIGEM = '''+ dblOrigem.Text +''')';

  if edCodOrigem.Text <> '' then
    filtro := Filtro + 'AND (CH_COD_ORIGEM = '+ edCodOrigem.Text +')';

  if dblPagto.KeyValue <> null then
    filtro := filtro + 'AND (CH_PAGTO = '''+ dblPagto.Text +''')';

  if edCodPagto.Text <> '' then
    filtro := Filtro + 'AND (CH_COD_PAGTO = '+ edCodPagto.Text +')';

  if dblPortador.KeyValue <> null then
    filtro := filtro + 'AND (CH_PORTADOR = '+ varToStr(dblPortador.KeyValue) +')';

  if dblSituacao.KeyValue <> null then
    filtro := filtro + 'AND (CH_SITUACAO = '+ varToStr(dblSituacao.KeyValue) +')';

  with QPesquisa do
  begin
    Close;
    SQL.Clear;
    SQL.Add(Format(ctPesquisa, [filtro]));
    Open;
  end;

  inherited;

end;

procedure TFPesquisaCheque.BtnSelecionarClick(Sender: TObject);
begin
  inherited;
  FCadastroCheque.QCadastro.Locate('CH_CODIGO',Qpesquisa.FieldByName('CH_CODIGO').AsInteger,[]);
  close;
end;

procedure TFPesquisaCheque.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  FPesquisaCheque.Release;
  FPesquisaCheque := nil;
end;

procedure TFPesquisaCheque.DBGrid1DblClick(Sender: TObject);
begin
  inherited;
  BtnSelecionar.click;
end;

end.
